package com.authine.cloudpivot.ext.service;

import com.alibaba.cola.dto.SingleResponse;
import com.authine.cloudpivot.ext.dto.ContractOrderIntentionDto;
import com.authine.mvp.app.launcher.dto.bo.response.BO;

import java.util.Collection;
import java.util.List;

/**
 * 代购服务接口
 */

public interface ContractService {
    /**
     * 采购订单-批量修改客户订单状态（批量取消/批量付款/提交审批）
     *
     * @param dto
     */
    SingleResponse<BO> saveIntentionContract(ContractOrderIntentionDto dto) throws RuntimeException;

    /**
     * 保存并提交代购合同
     *
     * @param contractIntention
     * @return
     */
    SingleResponse<BO> createSubmitContract(ContractOrderIntentionDto contractIntention);

    /**
     * 确认付款条款，并生成代购商品源，和客户订单（包含一个供应商订单和很多订单商品）
     *
     * @param intentionId
     * @return
     */
    SingleResponse<BO> confirmIntentionContract(String intentionId);

    /**
     * 提交代购合同
     *
     * @param ids
     */
    SingleResponse<BO> submitIntentionContract(Collection<String> ids);

    /**
     * 创建代购意向
     *
     * @param contractIntention
     * @return
     */
    SingleResponse<BO> saveIntention(ContractOrderIntentionDto contractIntention);

    /**
     * 确认代购合同中-创建发货单并发货
     *
     * @param intentionId
     * @return
     */
    List<String> saveOrderAndDelivery(String intentionId);
}
